package com.ruoyi.system.domain.vo;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.github.pagehelper.util.StringUtil;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class BProjectTaskVo {

    /**
     * id
     */
    @Excel(name = "任务序号", cellType = Excel.ColumnType.NUMERIC)
    private Long id;

    /**
     * 项目Id
     */
    private Long projectId;

    /**
     * 题目Id
     */
    private Long questionId;


    /**
     * 训练医生Id
     */
    private Long trainDoctorId;

    /**
     * 评审医生Id
     */
    private Long reviewDoctorId;

    /**
     * 任务名称
     */
    @Excel(name = "任务名称")
    private String name;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;

    /**
     * 题目
     */
    @Excel(name = "题目")
    private String questionTitle;

    /**
     * 题目类型：0-问答，1-视频解读，2-案例
     */
    @Excel(name = "题目类型",readConverterExp = "0=问答,1=视频解读,2=案例")
    private String questionType;

    /**
     * 训练者
     */
    @Excel(name = "训练者")
    private String trainName;

    /**
     * 审核者
     */
    @Excel(name = "审核者")
    private String reviewName;

    /**
     * 任务详细
     */
    private String content;

    @Excel(name = "任务详细")
    private String contentString;

    /**
     * 任务状态：0-未完成，1-已完成，2-审核通过，3-被驳回
     */
    @Excel(name = "任务状态",readConverterExp = "0=未完成,1=已完成,2=审核通过,3=被驳回")
    private String status;

    /**
     * 任务状态：0-未完成，1-已完成，2-被驳回
     */
    private String taskStatus;

    /**
     * 评审意见
     */
    @Excel(name = "评审意见")
    private String reviewRemark;

    /**
     * 评审时间
     */
    @Excel(name = "评审时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 任务类型：0-训练，1-评审
     */
    private String type;

    /**
     * 题目信息
     */
    private BQuestionVo questionVo;

    /**
     * 训练医生信息
     */
    private BUserVo trainUser;

    /**
     * 评审医生信息
     */
    private BUserVo reviewUser;

    /**
     * 评分标准列表
     */
    private List<BScoreRuleVo> scoreRuleList;

    private JSONObject details;
    public JSONObject getDetails() {
        if(StringUtil.isEmpty(this.content)){
            return new JSONObject();
        }else{
            this.details = JSONObject.parseObject(this.content);
            this.setContent(null);
            return this.details;
        }
    }

    @Excel(name = "评分")
    private String scoreString;

    private String statusTxt;

    public String getStatusTxt() {
        if("0".equals(this.status)){
            return "未完成";
        }else if("1".equals(this.status)){
            return "已完成";
        }else if("2".equals(this.status)){
            return "审核通过";
        }else if("3".equals(this.status)){
            return "驳回";
        }
        return "";
    }


}
